#include <key.h>
#include <led.h>

u8 key_time = 0;
u8 key_status = 0;  // 是否有按键按下，可以被
u8 key_value = 0;

/**
 * 按键初始化程序，设置相应管脚功能
 */
void KEY_Init(void){
    GPIO_InitTypeDef initTypeDef;
    initTypeDef.Mode = GPIO_PullUp;
    initTypeDef.Pin =  GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_4;
    GPIO_Inilize(GPIO_P6, &initTypeDef); // 设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P6_PULL_UP_ENABLE(GPIO_Pin_4);
    P6_PULL_UP_ENABLE(GPIO_Pin_5);
    P6_PULL_UP_ENABLE(GPIO_Pin_6);
    P6_DIGIT_IN_ENABLE(GPIO_Pin_4);
    P6_DIGIT_IN_ENABLE(GPIO_Pin_5);
    P6_DIGIT_IN_ENABLE(GPIO_Pin_6);
}

/**
 * 判断是否有按键按下，并且将值记录下来
 * 0：没有按键按下
 * 1：key_set 按键按下了
 * 2：key_up 按键按下了
 * 3：key_down 按键按下了
 */
void KEY_Scan_Task(void){
    u8 newkey;
    if(0 == KEY_SET) {
        newkey = KEY_STE_NUM;
    } else if (0 == KEY_UP){
        /* code */
        newkey = KEY_UP_NUM;
    } else if (0 == KEY_DOWN){
        /* code */
        newkey = KEY_DOWN_NUM;
    } else {
        key_value = 0;
        key_time = 0;
        return;
    }
    key_time++;

    if(key_value != newkey) {
        key_value = newkey;
        key_time = 1;
    }

    if(key_time == 2) {
        led_reversal('y');
        led_reversal('b');
        led_reversal('g');
    }
    
    
}